public class fanZhuanDanCi {
    /**
     * 输入: "the sky is blue"
     * 输出: "blue is sky the"
     *
     * 输入: "a good   example"
     * 输出: "example good a"
     */
    public String reverseWords(String s) {
        String[] str = s.trim().split(" ");
        StringBuilder sb = new StringBuilder();
        for (int i = str.length-1; i >= 0;i--) {
            if (str[i].length() == 0) continue;
            sb.append(str[i]).append(" ");
        }
        return sb.toString().trim();
    }

    /**
     * 牛客最近来了一个新员工Fish，每天早晨总是会拿着一本英文杂志，写些句子在本子上。
     * 同事Cat对Fish写的内容颇感兴趣，有一天他向Fish借来翻看，但却读不懂它的意思。
     * 例如，“nowcoder. a am I”。后来才意识到，这家伙原来把句子单词的顺序翻转了，
     * 正确的句子应该是“I am a nowcoder.”
     *
     * @param str
     * @return
     */
        public String ReverseSentence(String str) {
            if(str == null || str.length() == 0) {
                return str;
            }
            char[] list = str.toCharArray();
            int i = 0;
            int j = 0;
            int len = list.length;
            while(i < len) {
                while(i < len && !Character.isSpace(list[i])) {
                    i++;
                }
                Reverse(list,j,i-1);
                while(i < len && Character.isSpace(list[i])) {
                    i++;
                }
                j = i;
            }
            Reverse(list,j,i-1);
            Reverse(list,0,len-1);
            return new String(list);
        }
        public void Reverse(char[] list,int start,int end) {
            while(start < end) {
                char temp = list[start];
                list[start] = list[end];
                list[end] = temp;
                start++;
                end--;
            }

        }

}
